Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Authrorization response caching and spring cloud bus integration #52

Merged
merged 2 commits into from
Mar 12, 2024

Conversation

groldan
Copy link
Member

@groldan groldan commented Mar 12, 2024

Implement a caching AuthorizationService, and integrate with the
GeoServer plugin. Enabled by default through the
geoserver.acl.client.caching boolean configuration property.

Integrate server and client event-bus communication through RuleEvent
and AdminRuleEvent, using the spring-cloud-bus and RabbitMQ as default
binder.
Cache eviction occurs upon rule events, evicting the cached
authorization responses affected by the changed rules.
Disabled by default, and enabled through the geoserver.bus.enabled
boolean configuration property.

The server configuration got the following new properties in
values.yml (copied to /etc/geoserver/acl-service.yml in the Docker
image):

geoserver.bus.enabled: false
rabbitmq.host: rabbitmq
rabbitmq.port: 5672
rabbitmq.user: guest
rabbitmq.password: guest

The client plugin configuration got the following new properties:

geoserver.acl.client.caching: true
geoserver.acl.client.startupCheck: true
geoserver.acl.client.initTimeout: 10

Fixes #48

Implement a caching `AuthorizationService`, and integrate with the
GeoServer plugin. Enabled by default through the
`geoserver.acl.client.caching` boolean configuration property.

Integrate server and client event-bus communication through `RuleEvent`
and `AdminRuleEvent`, using the spring-cloud-bus and RabbitMQ as default
binder.
Cache eviction occurs upon rule events, evicting the cached
authorization responses affected by the changed rules.
Disabled by default, and enabled through the `geoserver.bus.enabled`
boolean configuration property.

The server configuration got the following new properties in
`values.yml` (copied to /etc/geoserver/acl-service.yml in the Docker
image):

```
geoserver.bus.enabled: false
rabbitmq.host: rabbitmq
rabbitmq.port: 5672
rabbitmq.user: guest
rabbitmq.password: guest
```

The client plugin configuration got the following new properties:

```
geoserver.acl.client.caching: true
geoserver.acl.client.startupCheck: true
geoserver.acl.client.initTimeout: 10
```
@groldan groldan added enhancement New feature or request plugin Issues related to the GeoServer plugin labels Mar 12, 2024
@groldan groldan merged commit 27573aa into geoserver:main Mar 12, 2024
3 checks passed
@groldan groldan deleted the caching_auth_responses branch March 12, 2024 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request plugin Issues related to the GeoServer plugin
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Performance improvement limiting the number of requests the plugin makes
1 participant